A web service is typically hosted by a web server or a web application server that provides the HTTP connection between the client software and the server-side software handling the implementation of application programming interfaces (APIs). The server manages a pool of threads to process concurrent web requests, thereby providing parallel processing of those requests. Additionally, servers that manage a pool of database connections typically bind an open database connection to the current thread for use during the entire HTTP transaction, freeing it back into the pool upon completion.
A web service API call typically is stateless and therefore not conductive to transactions across multiple invocations. For example, an API call performed via the XML-RPC protocol (remote procedure call protocol utilizing XML to encode its calls) includes no information that would tie the current API call to previous API calls during the same client session. Accordingly, client software lacks the ability to request that multiple units of work that are part of a single logical database transaction be committed or rolled back depending on some client-determined final status.